Nt = 10;
hok = randn(Nt - 1, 1) + 1i * randn(Nt - 1, 1);
Qk = conj(hok) * hok.';
cvx_begin quiet
        variable t 
        variable epision(Nt - 1, 1) complex
        maximize t
        subject to
            real( epision' * Qk * epision ) >= real(t);
            norm(epision) <= 1;
cvx_end

% 这个程序不行，一直跑不了


% 创建一个原始矩阵A，其中每一列是原始向量
A = [1, 2, 3; 4, 5, 6; 7, 8, 9];

% 初始化一个与A相同维度的零矩阵Q
[m, n] = size(A);
Q = zeros(m, n);

% 第一个列向量保持不变
Q(:, 1) = A(:, 1);

for i = 2:n
    % 取出当前原始向量
    v = A(:, i);
    
    % 投影v到之前列向量上并从v中减去投影部分
    for j = 1:i-1
        Q(:, i) = Q(:, i) + dot(v, Q(:, j)) / dot(Q(:, j), Q(:, j)) * Q(:, j);
    end
    
    % 将v中减去投影部分后的向量作为新的正交基向量
    Q(:, i) = v - Q(:, i);
end

% 正交化后的矩阵Q
disp('施密特正交化后的矩阵 Q:');
disp(Q);